Toolset update: MSVC Compiler 19.51.36014#6095
Open
StephanTLavavej wants to merge 35 commits intomicrosoft:mainfrom
Open
Toolset update: MSVC Compiler 19.51.36014#6095StephanTLavavej wants to merge 35 commits intomicrosoft:mainfrom
StephanTLavavej wants to merge 35 commits intomicrosoft:mainfrom
Conversation
Not yet required in yvals_core.h; the internal toolset is still 19.50.35721.
This teaches the IDE to pick up the Preview toolset. Thanks to Vivy in the STL Discord.
…for `r.operator T();`" was fixed on 2025-09-13.
…arameter` when `if constexpr` selects another branch" was fixed on 2025-06-27.
This was MSVC-PR-675420 on 2025-10-01.
…and EDG. This was MSVC-PR-682362 on 2025-10-27 and VS-PR-688674 on 2025-11-18. CUDA is limited to C++20, so we don't need to worry about it. Reported VSO-2742607 "C1XX __reference_constructs_from_temporary mishandles a couple of cases". Use strict_latest_matrix.lst because there are (predictably) lots of errors in permissive mode due to the Evil Extension.
…MSVC-PR-686379 on 2025-12-03.
This was bogus because `_Fill_align_and_width_formatter_format()` was correctly non-`constexpr`.
…_FormatContext::iterator`
VSO-1236041 was reportedly fixed on 2025-09-08, but it didn't work. I've reported VSO-2744645 "Standard Library Header Units: Declaring and defining constexpr member functions in different headers fails to compile".
This will reduce code churn when we unify them.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
…tions in different headers. For `pair`'s piecewise constructor, we used `_Tuple_get()` as a perma-workaround, and I don't want to change that now. Note that I'm transferring an `_STL_INTERNAL_STATIC_ASSERT` in `_Tuple_formatter_common_base::_Format()`. Reported VSO-2744645 "Standard Library Header Units: Declaring and defining constexpr member functions in different headers fails to compile" which should be a very easy fix according to Cameron.
Now that we have full ARM64 test coverage, and we're enabling ARM64 ASan, this needs to be updated. Transfer the tests that actually contain "XFAIL: msvc" to the section for the MSVC-internal test harness. A couple of tests don't contain "XFAIL: msvc" (anymore?) and are simply passing, so drop their mentions completely: std/time/time.cal/time.cal.ymd/time.cal.ymd.nonmembers/ostream.pass.cpp std/time/time.clock/time.clock.system/sys_date.ostream.pass.cpp
And mention ASan in the ASan pipeline's stage and display names. Add `dependsOn: []` to the x64 stage for symmetry, following the example of the Code Format stage in azure-pipelines.yml. azure-pipelines.yml: Update comment to follow our preferred arch order. Not enabling GH_002030_asan_annotate_string/GH_002030_asan_annotate_vector yet due to Clang issues.
And remove the few :2 (Clang-specific) configs; if Clang has trouble, C1XX is very likely to also have trouble. std/containers/sequences/vector.bool/flip.pass.cpp:0 was unexpectedly passing for x86. Playing whack-a-mole is just not worth my time.
fb88cd2 to
fdd46bf
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
seishun
reviewed
Feb 22, 2026
| 2. Change directories to the previously cloned `STL` directory. | ||
| 3. `cmake --preset x64` | ||
| 4. `cmake --build --preset x64` | ||
| 1. `pushd "%ProgramFiles%\Microsoft Visual Studio\18\Insiders\VC\Auxiliary\Build"` |
Contributor
There was a problem hiding this comment.
Why not cd/d if there's no goal to popd?
Contributor
There was a problem hiding this comment.
Then, if you're in the repo directory before this step, you'll have to either deviate from the instructions here or spend more effort in the third step.
If the reader is presumed to know how to change directories, something like "Change directories to "%ProgramFiles%\Microsoft Visual Studio\18\Insiders\VC\Auxiliary\Build"" would be better.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog
is_implicit_lifetimeCommits
-vcvars_ver=preview.r.operator T();" was fixed on 2025-09-13.warning C4100: '<_Args_0>': unreferenced formal parameterwhenif constexprselects another branch" was fixed on 2025-06-27.is_implicit_lifetimein C++23 mode for MSVC.reference_meows_from_temporaryin C++23 mode for MSVC and EDG.__reference_constructs_from_temporarymishandles a couple of cases". Use strict_latest_matrix.lst because there are (predictably) lots of errors in permissive mode due to the Evil Extension.constexprrestrictions" with MSVC-PR-686379 on 2025-12-03.constexprbug!std::to_string()without including<string>llvm/llvm-project#182390.[[clang::trivial_abi]]llvm/llvm-project#182392.p == 1, which has undefined behavior llvm/llvm-project#182397._Pc=>_ParseContext_Pc=>_Parse_ctx_ParseCtx=>_ParseContext_ParseCtx=>_Parse_ctx_FormatCtx=>_Format_ctx_FmtCtx=>_FormatContext_Fill_align_and_width_formatter::_Format()shouldn't beconstexpr._Fill_align_and_width_formatter_format()was correctly non-constexpr._Fill_align_and_width_formatter::_Format()return type:auto=>_FormatContext::iterator_NODISCARDon workaround functions to match their callers.<format>: Remove workarounds for declaring and defining member functions in different headers.pair's piecewise constructor, we used_Tuple_get()as a perma-workaround, and I don't want to change that now. Note that I'm transferring an_STL_INTERNAL_STATIC_ASSERTin_Tuple_formatter_common_base::_Format().dependsOn: []to the x64 stage for symmetry, following the example of the Code Format stage in azure-pipelines.yml. Update comment in azure-pipelines.yml to follow our preferred arch order. Not enabling GH_002030_asan_annotate_string and GH_002030_asan_annotate_vector yet due to Clang issues.Testing
STL-ASan-CI passed for x64, x86, and ARM64.